package br.iesb.bean.boat;

import br.iesb.bean.Posicao;

public class Embarcacao {
	
	private int vida;
	private int tamanho;
	private String nome;
	private Posicao[] posicoesOcupadas;
	
	private Posicao posicaoInicial;
	private boolean inHorizontal;
	
	public Embarcacao() {
		super();
	}
	
	public Embarcacao(ETipoEmbarcacao tipo) {
		super();
		this.vida = tipo.getSize();
		this.tamanho = tipo.getSize();
		this.nome = tipo.getNome();
	}
	
	public int getTamanho() {
		return tamanho;
	}
	public int getVida() {
		return vida;
	}
	public void dano() {
		vida -= 1;
	}
	public String getNome() {
		return nome;
	}

	public Posicao getPosicaoInicial() {
		return posicaoInicial;
	}

	public void setPosicaoInicial(Posicao posicaoInicial) {
		this.posicaoInicial = posicaoInicial;
		int columnTemp = posicaoInicial.getColuna();
		int linhaTemp    = posicaoInicial.getLinha();
		this.posicoesOcupadas = new Posicao[tamanho];

		//need refactoring this code in future.
		if(isInHorizontal()){
			for (int x=0;x<this.tamanho; x++)
			{
				this.posicoesOcupadas[x] = new Posicao(linhaTemp,columnTemp + x); 
			}
		}else{
			for (int x=0;x<this.tamanho; x++)
			{
				this.posicoesOcupadas[x] = new Posicao(linhaTemp + x,columnTemp ); 
			}
		}
		
	}

	public boolean isInHorizontal() {
		return inHorizontal;
	}

	public void setInHorizontal(boolean inHorizontal) {
		this.inHorizontal = inHorizontal;
	}

	public Posicao[] getPosicoesOcupadas() {
		return posicoesOcupadas;
	}

	public void setPosicoesOcupadas(Posicao[] posicoesOcupada) {
		this.posicoesOcupadas = posicoesOcupada;
	}

	public void setVida(int vida) {
		this.vida = vida;
	}

	public void setTamanho(int tamanho) {
		this.tamanho = tamanho;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
	
	
}
